#pragma once
#include "ISomeContainterIterator.h"

class CSomeContainer;
class CSomeContainterIterator: public ISomeContainterIterator
{
public:
    CSomeContainterIterator(CSomeContainer* contaiter);

    boost::shared_ptr<IObject> Begin();
    boost::shared_ptr<IObject> End();
    boost::shared_ptr<IObject> Next();
    boost::shared_ptr<IObject> Prev();

private:
    typedef std::vector<boost::shared_ptr<IObject>> Object_vt;
    Object_vt m_weakCopyMap;
    Object_vt::const_iterator m_iterForward;
    Object_vt::const_reverse_iterator m_iterReverse;
};
